#include "INP_card.h"

const std::vector<std::string> INP_card::INP_KEYS = {
	"*NODE",
	"*ELEMENT",
	
	"*SOLID SECTION",
	"*SHELL SECTION",
	"*BEAM SECTION",
	"*BEAM GENERAL SECTION",
	
	"*PART",
	"*END PART",
	
	"*NSET",
	"*ELSET",

};


std::map<std::string, std::vector<std::vector<int>>> INP_card::ElementFaceMap = {
	std::make_pair("CPE3",std::vector<std::vector<int>>{std::vector<int>{1,2},std::vector<int>{2,3},std::vector<int>{3,1}}),
	std::make_pair("CPE3R",std::vector<std::vector<int>>{std::vector<int>{1,2},std::vector<int>{2,3},std::vector<int>{3,1}}),
	std::make_pair("CPE3H",std::vector<std::vector<int>>{std::vector<int>{1,2},std::vector<int>{2,3},std::vector<int>{3,1}}),
	std::make_pair("CPE3RH",std::vector<std::vector<int>>{std::vector<int>{1,2},std::vector<int>{2,3},std::vector<int>{3,1}}),
	std::make_pair("CPE4",std::vector<std::vector<int>>{std::vector<int>{1,2},std::vector<int>{2,3},std::vector<int>{3,4},std::vector<int>{4,1}}),
	std::make_pair("CPE4R",std::vector<std::vector<int>>{std::vector<int>{1,2},std::vector<int>{2,3},std::vector<int>{3,4},std::vector<int>{4,1 }}),
	std::make_pair("CPE4H",std::vector<std::vector<int>>{std::vector<int>{1,2},std::vector<int>{2,3},std::vector<int>{3,4},std::vector<int>{4,1}}),
	std::make_pair("CPE4RH" ,std::vector<std::vector<int>>{std::vector<int>{1,2},std::vector<int>{2,3},std::vector<int>{3,4},std::vector<int>{4,1}}),
	std::make_pair("CPS3" ,std::vector<std::vector<int>>{std::vector<int>{1,2},std::vector<int>{2,3},std::vector<int>{3,1}}),
	std::make_pair("CPS4" ,std::vector<std::vector<int>>{std::vector<int>{1,2},std::vector<int>{2,3},std::vector<int>{3,4},std::vector<int>{4,1}}),
	std::make_pair("CPS4R" ,std::vector<std::vector<int>>{std::vector<int>{1,2},std::vector<int>{2,3},std::vector<int>{3,4},std::vector<int>{4,1}}),
	std::make_pair("CPS6" ,std::vector<std::vector<int>>{std::vector<int>{1,2},std::vector<int>{2,3},std::vector<int>{3,1}}),
	std::make_pair("CPS8" ,std::vector<std::vector<int>>{std::vector<int>{1,2},std::vector<int>{2,3},std::vector<int>{3,4},std::vector<int>{4,1}}),
	std::make_pair("CPE6",std::vector<std::vector<int>>{std::vector<int>{1,2,4},std::vector<int>{2,3,5},std::vector<int>{3,1,6}}),
	std::make_pair("CPE6H",std::vector<std::vector<int>>{std::vector<int>{1,2,4},std::vector<int>{2,3,5},std::vector<int>{3,1,6}}),
	std::make_pair("CPE8",std::vector<std::vector<int>>{std::vector<int>{1,2,5},std::vector<int>{2,3,6},std::vector<int>{3,4,7},std::vector<int>{4,1,8}}),
	std::make_pair("CPE8H",std::vector<std::vector<int>>{std::vector<int>{1,2,5},std::vector<int>{2,3,6},std::vector<int>{3,4,7},std::vector<int>{4,1,8}}),



	std::make_pair("CAX3" ,std::vector<std::vector<int>>{std::vector<int>{1,2},std::vector<int>{2,3},std::vector<int>{3,1}}),
	std::make_pair("CAX3H" ,std::vector<std::vector<int>>{std::vector<int>{1,2},std::vector<int>{2,3},std::vector<int>{3,1}}),
	std::make_pair("CAX4" ,std::vector<std::vector<int>>{std::vector<int>{1,2},std::vector<int>{2,3},std::vector<int>{3,4},std::vector<int>{4,1}}),
	std::make_pair("CAX4H" ,std::vector<std::vector<int>>{std::vector<int>{1,2},std::vector<int>{2,3},std::vector<int>{3,4},std::vector<int>{4,1}}),
	std::make_pair("CAX4R" ,std::vector<std::vector<int>>{std::vector<int>{1,2},std::vector<int>{2,3},std::vector<int>{3,4},std::vector<int>{4,1}}),
	std::make_pair("CAX4RH" ,std::vector<std::vector<int>>{std::vector<int>{1,2},std::vector<int>{2,3},std::vector<int>{3,4},std::vector<int>{4,1}}),
	std::make_pair("CAX6",std::vector<std::vector<int>>{std::vector<int>{1,2,4},std::vector<int>{2,3,5},std::vector<int>{3,1,6}}),
	std::make_pair("CAX6H",std::vector<std::vector<int>>{std::vector<int>{1,2,4},std::vector<int>{2,3,5},std::vector<int>{3,1,6}}),
	std::make_pair("CAX8",std::vector<std::vector<int>>{std::vector<int>{1,2,5},std::vector<int>{2,3,6},std::vector<int>{3,4,7},std::vector<int>{4,1,8}}),
	std::make_pair("CAX8H",std::vector<std::vector<int>>{std::vector<int>{1,2,5},std::vector<int>{2,3,6},std::vector<int>{3,4,7},std::vector<int>{4,1,8}}),

	std::make_pair("MASSPOINT",std::vector<std::vector<int>>{std::vector<int>{1}}),
	std::make_pair("B31",std::vector<std::vector<int>>{std::vector<int>{1,2}}),
	std::make_pair("T3D2",std::vector<std::vector<int>>{std::vector<int>{1,2}}),
	std::make_pair("S3",std::vector<std::vector<int>>{std::vector<int>{1,2,3},std::vector<int>{3,2,1}}),
	std::make_pair("S3R",std::vector<std::vector<int>>{std::vector<int>{1,2,3},std::vector<int>{3,2,1}}),
	std::make_pair("R3D3",std::vector<std::vector<int>>{std::vector<int>{1,2,3},std::vector<int>{3,2,1}}),
	std::make_pair("M3D3",std::vector<std::vector<int>>{std::vector<int>{1,2,3},std::vector<int>{3,2,1}}),
	std::make_pair("S4",std::vector<std::vector<int>>{std::vector<int>{1,2,3,4},std::vector<int>{4,3,2,1}}),
	std::make_pair("S4R",std::vector<std::vector<int>>{std::vector<int>{1,2,3,4},std::vector<int>{4,3,2,1}}),
	std::make_pair("STRI65",std::vector<std::vector<int>>{std::vector<int>{1,2,3,4,5,6},std::vector<int>{1,3,2,6,5,4}}),
	std::make_pair("S8R",std::vector<std::vector<int>>{std::vector<int>{1,2,3,4,5,6,7,8},std::vector<int>{1,4,3,2,8,7,6,5}}),
	std::make_pair("R3D4",std::vector<std::vector<int>>{std::vector<int>{1,2,3,4},std::vector<int>{4,3,2,1}}),
	std::make_pair("M3D4",std::vector<std::vector<int>>{std::vector<int>{1,2,3,4},std::vector<int>{4,3,2,1}}),
	std::make_pair("M3D8",std::vector<std::vector<int>>{std::vector<int>{1,2,3,4,5,6,7,8},std::vector<int>{1,4,3,2,8,7,6,5}}),
	std::make_pair("C3D5",std::vector<std::vector<int>>{std::vector<int>{1,4,3,2},std::vector<int>{1,2,5},std::vector<int>{2,3,5},std::vector<int>{3,4,5},std::vector<int>{1,5,4}}),
	std::make_pair("C3D6",std::vector<std::vector<int>>{std::vector<int>{3,2,1},std::vector<int>{5,6,4},std::vector<int>{2,5,4,1},std::vector<int>{3,6,5,2},std::vector<int>{1,4,6,3}}),
	std::make_pair("C3D6H",std::vector<std::vector<int>>{std::vector<int>{3,2,1},std::vector<int>{5,6,4},std::vector<int>{2,5,4,1},std::vector<int>{3,6,5,2},std::vector<int>{1,4,6,3}}),
	std::make_pair("SC6R",std::vector<std::vector<int>>{std::vector<int>{3,2,1},std::vector<int>{5,6,4},std::vector<int>{2,5,4,1},std::vector<int>{3,6,5,2},std::vector<int>{1,4,6,3}}),
	std::make_pair("C3D15",std::vector<std::vector<int>>{std::vector<int>{3,2,1,8,7,9},std::vector<int>{5,6,4,11,12,10},std::vector<int>{2,5,4,1,14,10,13,7},std::vector<int>{3,6,5,2,15,11,14,8},std::vector<int>{1,4,6,3,13,12,15,9}}),
	std::make_pair("C3D15H",std::vector<std::vector<int>>{std::vector<int>{3,2,1,8,7,9},std::vector<int>{5,6,4,11,12,10},std::vector<int>{2,5,4,1,14,10,13,7},std::vector<int>{3,6,5,2,15,11,14,8},std::vector<int>{1,4,6,3,13,12,15,9}}),
	std::make_pair("C3D8",std::vector<std::vector<int>>{std::vector<int>{1,4,3,2},std::vector<int>{5,6,7,8},std::vector<int>{1,2,6,5},std::vector<int>{2,3,7,6},std::vector<int>{3,4,8,7},std::vector<int>{1,5,8,4}}),
	std::make_pair("C3D8I",std::vector<std::vector<int>>{std::vector<int>{1,4,3,2},std::vector<int>{5,6,7,8},std::vector<int>{1,2,6,5},std::vector<int>{2,3,7,6},std::vector<int>{3,4,8,7},std::vector<int>{1,5,8,4}}),
	std::make_pair("C3D8R",std::vector<std::vector<int>>{std::vector<int>{1,4,3,2},std::vector<int>{5,6,7,8},std::vector<int>{1,2,6,5},std::vector<int>{2,3,7,6},std::vector<int>{3,4,8,7},std::vector<int>{1,5,8,4}}),
	std::make_pair("C3D8H",std::vector<std::vector<int>>{std::vector<int>{1,4,3,2},std::vector<int>{5,6,7,8},std::vector<int>{1,2,6,5},std::vector<int>{2,3,7,6},std::vector<int>{3,4,8,7},std::vector<int>{1,5,8,4}}),
	std::make_pair("C3D8RH",std::vector<std::vector<int>>{std::vector<int>{1,4,3,2},std::vector<int>{5,6,7,8},std::vector<int>{1,2,6,5},std::vector<int>{2,3,7,6},std::vector<int>{3,4,8,7},std::vector<int>{1,5,8,4}}),
	std::make_pair("SC8R",std::vector<std::vector<int>>{std::vector<int>{1,4,3,2},std::vector<int>{5,6,7,8},std::vector<int>{1,2,6,5},std::vector<int>{2,3,7,6},std::vector<int>{3,4,8,7},std::vector<int>{1,5,8,4}}),
	std::make_pair("C3D20",std::vector<std::vector<int>>{std::vector<int>{1,4,3,2,12,11,10,9},std::vector<int>{5,6,7,8,13,14,15,16},std::vector<int>{1,2,6,5,9,18,13,17},std::vector<int>{2,3,7,6,10,19,14,18},std::vector<int>{3,4,8,7,11,20,15,19},std::vector<int>{1,5,8,4,17,16,20,12}}),
	std::make_pair("C3D20R",std::vector<std::vector<int>>{std::vector<int>{1,4,3,2,12,11,10,9},std::vector<int>{5,6,7,8,13,14,15,16},std::vector<int>{1,2,6,5,9,18,13,17},std::vector<int>{2,3,7,6,10,19,14,18},std::vector<int>{3,4,8,7,11,20,15,19},std::vector<int>{1,5,8,4,17,16,20,12}}),
	std::make_pair("C3D20H",std::vector<std::vector<int>>{std::vector<int>{1,4,3,2,12,11,10,9},std::vector<int>{5,6,7,8,13,14,15,16},std::vector<int>{1,2,6,5,9,18,13,17},std::vector<int>{2,3,7,6,10,19,14,18},std::vector<int>{3,4,8,7,11,20,15,19},std::vector<int>{1,5,8,4,17,16,20,12}}),
	std::make_pair("C3D4",std::vector<std::vector<int>>{std::vector<int>{3,2,1},std::vector<int>{2,4,1},std::vector<int>{3,4,2},std::vector<int>{1,4,3}}),
	std::make_pair("C3D4H",std::vector<std::vector<int>>{std::vector<int>{3,2,1},std::vector<int>{2,4,1},std::vector<int>{3,4,2},std::vector<int>{1,4,3}}),
	std::make_pair("C3D10",std::vector<std::vector<int>>{std::vector<int>{3,2,1,6,5,7},std::vector<int>{2,4,1,9,8,5},std::vector<int>{3,4,2,10,9,6},std::vector<int>{1,4,3,8,10,7}}),
	std::make_pair("C3D10H",std::vector<std::vector<int>>{std::vector<int>{3,2,1,6,5,7},std::vector<int>{2,4,1,9,8,5},std::vector<int>{3,4,2,10,9,6},std::vector<int>{1,4,3,8,10,7}}),
	std::make_pair("C3D10M",std::vector<std::vector<int>>{std::vector<int>{3,2,1,6,5,7},std::vector<int>{2,4,1,9,8,5},std::vector<int>{3,4,2,10,9,6},std::vector<int>{1,4,3,8,10,7}}),
	std::make_pair("C3D10I",std::vector<std::vector<int>>{std::vector<int>{3,2,1,6,5,7},std::vector<int>{2,4,1,9,8,5},std::vector<int>{3,4,2,10,9,6},std::vector<int>{1,4,3,8,10,7}}),
	std::make_pair("C3D20RH",std::vector<std::vector<int>>{std::vector<int>{1,4,3,2,12,11,10,9},std::vector<int>{5,6,7,8,13,14,15,16},std::vector<int>{1,2,6,5,9,18,13,17},std::vector<int>{2,3,7,6,10,19,14,18},std::vector<int>{3,4,8,7,11,20,15,19},std::vector<int>{1,5,8,4,17,16,20,12}}),

	std::make_pair("DC3D8",std::vector<std::vector<int>>{std::vector<int>{1,4,3,2},std::vector<int>{5,6,7,8},std::vector<int>{1,2,6,5},std::vector<int>{2,3,7,6},std::vector<int>{3,4,8,7},std::vector<int>{1,5,8,4}}),
	std::make_pair("DC3D8I",std::vector<std::vector<int>>{std::vector<int>{1,4,3,2},std::vector<int>{5,6,7,8},std::vector<int>{1,2,6,5},std::vector<int>{2,3,7,6},std::vector<int>{3,4,8,7},std::vector<int>{1,5,8,4}}),
	std::make_pair("DC3D8R",std::vector<std::vector<int>>{std::vector<int>{1,4,3,2},std::vector<int>{5,6,7,8},std::vector<int>{1,2,6,5},std::vector<int>{2,3,7,6},std::vector<int>{3,4,8,7},std::vector<int>{1,5,8,4}}),
	std::make_pair("DC3D8H",std::vector<std::vector<int>>{std::vector<int>{1,4,3,2},std::vector<int>{5,6,7,8},std::vector<int>{1,2,6,5},std::vector<int>{2,3,7,6},std::vector<int>{3,4,8,7},std::vector<int>{1,5,8,4}}),
	std::make_pair("DC3D8RH",std::vector<std::vector<int>>{std::vector<int>{1,4,3,2},std::vector<int>{5,6,7,8},std::vector<int>{1,2,6,5},std::vector<int>{2,3,7,6},std::vector<int>{3,4,8,7},std::vector<int>{1,5,8,4}}),
	std::make_pair("DC3D20",std::vector<std::vector<int>>{std::vector<int>{1,4,3,2,12,11,10,9},std::vector<int>{5,6,7,8,13,14,15,16},std::vector<int>{1,2,6,5,9,18,13,17},std::vector<int>{2,3,7,6,10,19,14,18},std::vector<int>{3,4,8,7,11,20,15,19},std::vector<int>{1,5,8,4,17,16,20,12}}),
	std::make_pair("DC3D20R",std::vector<std::vector<int>>{std::vector<int>{1,4,3,2,12,11,10,9},std::vector<int>{5,6,7,8,13,14,15,16},std::vector<int>{1,2,6,5,9,18,13,17},std::vector<int>{2,3,7,6,10,19,14,18},std::vector<int>{3,4,8,7,11,20,15,19},std::vector<int>{1,5,8,4,17,16,20,12}}),
	std::make_pair("DC3D20H",std::vector<std::vector<int>>{std::vector<int>{1,4,3,2,12,11,10,9},std::vector<int>{5,6,7,8,13,14,15,16},std::vector<int>{1,2,6,5,9,18,13,17},std::vector<int>{2,3,7,6,10,19,14,18},std::vector<int>{3,4,8,7,11,20,15,19},std::vector<int>{1,5,8,4,17,16,20,12}}),
	std::make_pair("DC3D6",std::vector<std::vector<int>>{std::vector<int>{3,2,1},std::vector<int>{5,6,4},std::vector<int>{2,5,4,1},std::vector<int>{3,6,5,2},std::vector<int>{1,4,6,3}}),
	std::make_pair("DC3D6H",std::vector<std::vector<int>>{std::vector<int>{3,2,1},std::vector<int>{5,6,4},std::vector<int>{2,5,4,1},std::vector<int>{3,6,5,2},std::vector<int>{1,4,6,3}}),
	std::make_pair("DC3D15",std::vector<std::vector<int>>{std::vector<int>{3,2,1,8,7,9},std::vector<int>{5,6,4,11,12,10},std::vector<int>{2,5,4,1,14,10,13,7},std::vector<int>{3,6,5,2,15,11,14,8},std::vector<int>{1,4,6,3,13,12,15,9}}),
	std::make_pair("DC3D15H",std::vector<std::vector<int>>{std::vector<int>{3,2,1,8,7,9},std::vector<int>{5,6,4,11,12,10},std::vector<int>{2,5,4,1,14,10,13,7},std::vector<int>{3,6,5,2,15,11,14,8},std::vector<int>{1,4,6,3,13,12,15,9}}),
	std::make_pair("DC3D4",std::vector<std::vector<int>>{std::vector<int>{3,2,1},std::vector<int>{2,4,1},std::vector<int>{3,4,2},std::vector<int>{1,4,3}}),
	std::make_pair("DC3D4H",std::vector<std::vector<int>>{std::vector<int>{3,2,1},std::vector<int>{2,4,1},std::vector<int>{3,4,2},std::vector<int>{1,4,3}}),
	std::make_pair("DC3D10",std::vector<std::vector<int>>{std::vector<int>{3,2,1,6,5,7},std::vector<int>{2,4,1,9,8,5},std::vector<int>{3,4,2,10,9,6},std::vector<int>{1,4,3,8,10,7}}),
	std::make_pair("DC3D10H",std::vector<std::vector<int>>{std::vector<int>{3,2,1,6,5,7},std::vector<int>{2,4,1,9,8,5},std::vector<int>{3,4,2,10,9,6},std::vector<int>{1,4,3,8,10,7}}),
	std::make_pair("DC3D10M",std::vector<std::vector<int>>{std::vector<int>{3,2,1,6,5,7},std::vector<int>{2,4,1,9,8,5},std::vector<int>{3,4,2,10,9,6},std::vector<int>{1,4,3,8,10,7}}),
	std::make_pair("DC3D10I",std::vector<std::vector<int>>{std::vector<int>{3,2,1,6,5,7},std::vector<int>{2,4,1,9,8,5},std::vector<int>{3,4,2,10,9,6},std::vector<int>{1,4,3,8,10,7}}),
	std::make_pair("DS3",std::vector<std::vector<int>>{std::vector<int>{1,2,3},std::vector<int>{3,2,1}}),
	std::make_pair("DS3R",std::vector<std::vector<int>>{std::vector<int>{1,2,3},std::vector<int>{3,2,1}}),
	std::make_pair("DS4",std::vector<std::vector<int>>{std::vector<int>{1,2,3,4},std::vector<int>{4,3,2,1}}),
	std::make_pair("DS4R",std::vector<std::vector<int>>{std::vector<int>{1,2,3,4},std::vector<int>{4,3,2,1}}),
	std::make_pair("DC2D3",std::vector<std::vector<int>>{std::vector<int>{1,2},std::vector<int>{2,3},std::vector<int>{3,1}}),
	std::make_pair("DC2D6",std::vector<std::vector<int>>{std::vector<int>{1,2},std::vector<int>{2,3},std::vector<int>{3,1}}),
	std::make_pair("DC2D4",std::vector<std::vector<int>>{std::vector<int>{1,2},std::vector<int>{2,3},std::vector<int>{3,4},std::vector<int>{4,1}}),
	std::make_pair("DC2D8",std::vector<std::vector<int>>{std::vector<int>{1,2},std::vector<int>{2,3},std::vector<int>{3,4},std::vector<int>{4,1}}),
};

std::map<std::string, std::vector<std::vector<int>>> INP_card::ElementFaceIDMap = {
	std::make_pair("CPE3",std::vector<std::vector<int>>{std::vector<int>{1,2},std::vector<int>{2,3},std::vector<int>{3,1}}),
	std::make_pair("CPE4",std::vector<std::vector<int>>{std::vector<int>{1,2},std::vector<int>{2,3},std::vector<int>{3,4},std::vector<int>{4,1}}),
	std::make_pair("CPE4R",std::vector<std::vector<int>>{std::vector<int>{1,2},std::vector<int>{2,3},std::vector<int>{3,4},std::vector<int>{4,1 }}),
	std::make_pair("CPE4H",std::vector<std::vector<int>>{std::vector<int>{1,2},std::vector<int>{2,3},std::vector<int>{3,4},std::vector<int>{4,1}}),
	std::make_pair("CPE4RH",std::vector<std::vector<int>>{std::vector<int>{1,2},std::vector<int>{2,3},std::vector<int>{3,4},std::vector<int>{4,1}}),
	std::make_pair("CPS3",std::vector<std::vector<int>>{std::vector<int>{1,2},std::vector<int>{2,3},std::vector<int>{3,1}}),
	std::make_pair("CPS4",std::vector<std::vector<int>>{std::vector<int>{1,2},std::vector<int>{2,3},std::vector<int>{3,4},std::vector<int>{4,1}}),
	std::make_pair("CPS4R",std::vector<std::vector<int>>{std::vector<int>{1,2},std::vector<int>{2,3},std::vector<int>{3,4},std::vector<int>{4,1}}),
	std::make_pair("CPS6",std::vector<std::vector<int>>{std::vector<int>{1,2},std::vector<int>{2,3},std::vector<int>{3,1}}),
	std::make_pair("CPS8",std::vector<std::vector<int>>{std::vector<int>{1,2},std::vector<int>{2,3},std::vector<int>{3,4},std::vector<int>{4,1}}),

	std::make_pair("CAX3",std::vector<std::vector<int>>{std::vector<int>{1,2},std::vector<int>{2,3},std::vector<int>{3,1}}),
	std::make_pair("CAX3H",std::vector<std::vector<int>>{std::vector<int>{1,2},std::vector<int>{2,3},std::vector<int>{3,1}}),
	std::make_pair("CAX4",std::vector<std::vector<int>>{std::vector<int>{1,2},std::vector<int>{2,3},std::vector<int>{3,4},std::vector<int>{4,1}}),
	std::make_pair("CAX4H",std::vector<std::vector<int>>{std::vector<int>{1,2},std::vector<int>{2,3},std::vector<int>{3,4},std::vector<int>{4,1}}),
	std::make_pair("CAX4R",std::vector<std::vector<int>>{std::vector<int>{1,2},std::vector<int>{2,3},std::vector<int>{3,4},std::vector<int>{4,1}}),
	std::make_pair("CAX4RH",std::vector<std::vector<int>>{std::vector<int>{1,2},std::vector<int>{2,3},std::vector<int>{3,4},std::vector<int>{4,1}}),

	std::make_pair("MASSPOINT",std::vector<std::vector<int>>{std::vector<int>{1}}),
	std::make_pair("B31",std::vector<std::vector<int>>{std::vector<int>{1,2}}),
	std::make_pair("T3D2",std::vector<std::vector<int>>{std::vector<int>{1,2}}),
	std::make_pair("S3",std::vector<std::vector<int>>{std::vector<int>{1,2,3},std::vector<int>{3,2,1}}),
	std::make_pair("S3R",std::vector<std::vector<int>>{std::vector<int>{1,2,3},std::vector<int>{3,2,1}}),
	std::make_pair("R3D3",std::vector<std::vector<int>>{std::vector<int>{1,2,3},std::vector<int>{3,2,1}}),
	std::make_pair("M3D3",std::vector<std::vector<int>>{std::vector<int>{1,2,3},std::vector<int>{3,2,1}}),
	std::make_pair("S4",std::vector<std::vector<int>>{std::vector<int>{1,2,3,4},std::vector<int>{4,3,2,1}}),
	std::make_pair("S4R",std::vector<std::vector<int>>{std::vector<int>{1,2,3,4},std::vector<int>{4,3,2,1}}),
	std::make_pair("STRI65",std::vector<std::vector<int>>{std::vector<int>{1,2,3,4,5,6},std::vector<int>{1,3,2,6,5,4}}),
	std::make_pair("S8R",std::vector<std::vector<int>>{std::vector<int>{1,2,3,4,5,6,7,8},std::vector<int>{1,4,3,2,8,7,6,5}}),
	std::make_pair("R3D4",std::vector<std::vector<int>>{std::vector<int>{1,2,3,4},std::vector<int>{4,3,2,1}}),
	std::make_pair("M3D4",std::vector<std::vector<int>>{std::vector<int>{1,2,3,4},std::vector<int>{4,3,2,1}}),
	std::make_pair("M3D8",std::vector<std::vector<int>>{std::vector<int>{1,2,3,4,5,6,7,8},std::vector<int>{1,4,3,2,8,7,6,5}}),
	std::make_pair("C3D5",std::vector<std::vector<int>>{std::vector<int>{1,4,3,2},std::vector<int>{1,2,5},std::vector<int>{2,3,5},std::vector<int>{3,4,5},std::vector<int>{1,5,4}}),
	std::make_pair("C3D6",std::vector<std::vector<int>>{std::vector<int>{3,2,1},std::vector<int>{5,6,4},std::vector<int>{2,5,4,1},std::vector<int>{3,6,5,2},std::vector<int>{1,4,6,3}}),
	std::make_pair("C3D6H",std::vector<std::vector<int>>{std::vector<int>{3,2,1},std::vector<int>{5,6,4},std::vector<int>{2,5,4,1},std::vector<int>{3,6,5,2},std::vector<int>{1,4,6,3}}),
	std::make_pair("SC6R",std::vector<std::vector<int>>{std::vector<int>{3,2,1},std::vector<int>{5,6,4},std::vector<int>{2,5,4,1},std::vector<int>{3,6,5,2},std::vector<int>{1,4,6,3}}),
	std::make_pair("C3D15",std::vector<std::vector<int>>{std::vector<int>{3,2,1,8,7,9},std::vector<int>{5,6,4,11,12,10},std::vector<int>{2,5,4,1,14,10,13,7},std::vector<int>{3,6,5,2,15,11,14,8},std::vector<int>{1,4,6,3,13,12,15,9}}),
	std::make_pair("C3D15H",std::vector<std::vector<int>>{std::vector<int>{3,2,1,8,7,9},std::vector<int>{5,6,4,11,12,10},std::vector<int>{2,5,4,1,14,10,13,7},std::vector<int>{3,6,5,2,15,11,14,8},std::vector<int>{1,4,6,3,13,12,15,9}}),
	std::make_pair("C3D8",std::vector<std::vector<int>>{std::vector<int>{1,4,3,2},std::vector<int>{5,6,7,8},std::vector<int>{1,2,6,5},std::vector<int>{2,3,7,6},std::vector<int>{3,4,8,7},std::vector<int>{1,5,8,4}}),
	std::make_pair("C3D8I",std::vector<std::vector<int>>{std::vector<int>{1,4,3,2},std::vector<int>{5,6,7,8},std::vector<int>{1,2,6,5},std::vector<int>{2,3,7,6},std::vector<int>{3,4,8,7},std::vector<int>{1,5,8,4}}),
	std::make_pair("C3D8R",std::vector<std::vector<int>>{std::vector<int>{1,4,3,2},std::vector<int>{5,6,7,8},std::vector<int>{1,2,6,5},std::vector<int>{2,3,7,6},std::vector<int>{3,4,8,7},std::vector<int>{1,5,8,4}}),
	std::make_pair("C3D8H",std::vector<std::vector<int>>{std::vector<int>{1,4,3,2},std::vector<int>{5,6,7,8},std::vector<int>{1,2,6,5},std::vector<int>{2,3,7,6},std::vector<int>{3,4,8,7},std::vector<int>{1,5,8,4}}),
	std::make_pair("C3D8RH",std::vector<std::vector<int>>{std::vector<int>{1,4,3,2},std::vector<int>{5,6,7,8},std::vector<int>{1,2,6,5},std::vector<int>{2,3,7,6},std::vector<int>{3,4,8,7},std::vector<int>{1,5,8,4}}),
	std::make_pair("SC8R",std::vector<std::vector<int>>{std::vector<int>{1,4,3,2},std::vector<int>{5,6,7,8},std::vector<int>{1,2,6,5},std::vector<int>{2,3,7,6},std::vector<int>{3,4,8,7},std::vector<int>{1,5,8,4}}),
	std::make_pair("C3D20",std::vector<std::vector<int>>{std::vector<int>{1,4,3,2,12,11,10,9},std::vector<int>{5,6,7,8,13,14,15,16},std::vector<int>{1,2,6,5,9,18,13,17},std::vector<int>{2,3,7,6,10,19,14,18},std::vector<int>{3,4,8,7,11,20,15,19},std::vector<int>{1,5,8,4,17,16,20,12}}),
	std::make_pair("C3D20R",std::vector<std::vector<int>>{std::vector<int>{1,4,3,2,12,11,10,9},std::vector<int>{5,6,7,8,13,14,15,16},std::vector<int>{1,2,6,5,9,18,13,17},std::vector<int>{2,3,7,6,10,19,14,18},std::vector<int>{3,4,8,7,11,20,15,19},std::vector<int>{1,5,8,4,17,16,20,12}}),
	std::make_pair("C3D20H",std::vector<std::vector<int>>{std::vector<int>{1,4,3,2,12,11,10,9},std::vector<int>{5,6,7,8,13,14,15,16},std::vector<int>{1,2,6,5,9,18,13,17},std::vector<int>{2,3,7,6,10,19,14,18},std::vector<int>{3,4,8,7,11,20,15,19},std::vector<int>{1,5,8,4,17,16,20,12}}),
	std::make_pair("C3D4",std::vector<std::vector<int>>{std::vector<int>{3,2,1},std::vector<int>{2,4,1},std::vector<int>{3,4,2},std::vector<int>{1,4,3}}),
	std::make_pair("C3D4H",std::vector<std::vector<int>>{std::vector<int>{3,2,1},std::vector<int>{2,4,1},std::vector<int>{3,4,2},std::vector<int>{1,4,3}}),
	std::make_pair("C3D10",std::vector<std::vector<int>>{std::vector<int>{3,2,1,6,5,7},std::vector<int>{2,4,1,9,8,5},std::vector<int>{3,4,2,10,9,6},std::vector<int>{1,4,3,8,10,7}}),
	std::make_pair("C3D10H",std::vector<std::vector<int>>{std::vector<int>{3,2,1,6,5,7},std::vector<int>{2,4,1,9,8,5},std::vector<int>{3,4,2,10,9,6},std::vector<int>{1,4,3,8,10,7}}),
	std::make_pair("C3D10M",std::vector<std::vector<int>>{std::vector<int>{3,2,1,6,5,7},std::vector<int>{2,4,1,9,8,5},std::vector<int>{3,4,2,10,9,6},std::vector<int>{1,4,3,8,10,7}}),
	std::make_pair("C3D10I",std::vector<std::vector<int>>{std::vector<int>{3,2,1,6,5,7},std::vector<int>{2,4,1,9,8,5},std::vector<int>{3,4,2,10,9,6},std::vector<int>{1,4,3,8,10,7}}),
};

std::unordered_set<std::string> INP_card::_2DAnalysisElement = { 
	"CPE3",	"CPE3H","CPE4",	"CPE4H","CPE4I","CPE4IH","CPE4R","CPE4RH","CPE6","CPE6H","CPE6M","CPE6MH","CPE8","CPE8H","CPE8R","CPE8RH",	"CPS3","CPS4","CPS4I","CPS4R","CPS6","CPS6M","CPS8","CPS8R","CPEG3","CPEG3H","CPEG4","CPEG4H",
	"CPEG4I","CPEG4IH","CPEG4R","CPEG4RH","CPEG6","CPEG6H","CPEG6M","CPEG6MH","CPEG8","CPEG8H","CPEG8R","CPEG8RH",	"CAX3","CAX3H","CAX4","CAX4H","CAX4I","CAX4IH","CAX4R","CAX4RH","CAX6","CAX6H","CAX6M","CAX6MH","CAX8","CAX8H","CAX8R",
	"CAX8RH","CGAX3","CGAX3H","CGAX4","CGAX4H","CGAX4R","CGAX4RH","CGAX6","CGAX6H","CGAX6M","CGAX6MH","CGAX8","CGAX8H","CGAX8R","CGAX8RH",
	"DC2D3","DC2D6","DC2D4","DC2D8",
};

INP_card::INP_card()
{

}

INP_card::~INP_card()
{

}
